Forms displayed on internet browsers via the World Wide Web are typically defined by the use of Hypertext Markup Language (HTML) or Dynamic Hypertext Markup Language (DHTML). DHTML is a product of the Microsoft Corporation of Redmond, Wash. DHTML incorporates the concept of the Form as a means of presenting Graphical User Interface (GUI) controls for manipulation by the user. DHTML documents are textual documents which contain tags representing such controls. Graphically, these controls are image elements which display data, possibly along with a caption identifying the data, for the user, and prompt the user to manipulate the displayed data, if desired. These prompt elements allow a user to view, add, replace or edit data, and may also contain initial data supplied by the server when the form is initially sent from the server to the web browser. An example of a DHTML tag specifying an inputbox control with initial data “19344” might be written as:<INPUT ID=ctlZipCode>19344</INPUT>
When the user is finished entering data, the form is submitted back to the server. When a DHTML form is submitted to a server, the contents of all of the prompt elements are collected by the Web browser and forwarded as part of the Universal Resource Locator (URL) to the Web server in the form of control name/control value pairs.
In some applications, external data from an external database is sent from the server to the client to be manipulated by the user via the prompt elements in the form. Specific portions of the external data are displayed on the form in corresponding prompt elements. The user then manipulates the data in the prompt elements. The newly added, or edited data is then sent back to the server which updates the external database in response. In such an application, the external data must be associated with prompt elements on the form.
Data binding refers to a software subroutine which associates data from the external database with the prompt elements for manipulating the data within the form. The architecture of the existing state of the data binding art, as suggested by Microsoft, is depicted in FIG. 1. This known data binding mechanism relies on an architecture having four components, namely a data source object (DSO), data consumers, a binding agent and a table repetition agent. In order to bind data to prompt elements present on an HTML page, a DSO must exist on that page. The DSO may require an Open Database Connectivity (OBDC) string and/or a Structured Query Language (SQL) statement or only a Universal Resource Locator (URL). SQL is discussed in SQL—The Complete Reference by James R. Groff and Paul N. Weinberg, McGraw-Hill Professional Publishing (1999) ISBN 007-211-8458.
The DSO may also be defined in terms of the Extensible Markup Language (XML). XML is discussed in Essential XML: Beyond Markup by Don Box, Aaron Skonnard and John Lam, Addison-Wesley Publishing Co. (2000) ISBN 020-170-9147. An XML document may define a hierarchical data structure and contain the data thus defined. In order to use an XML document one must add a Java applet element, defining the operation of the DSO, to the HTML page. Java is a product of Sun Microsystems, Inc of Palo Alto, Calif. The Java applet conditions the client computer to retrieve an XML document containing the external data, parse the data, and provide specified data to the bound prompt elements on the page. In this manner, the data consuming prompt elements are isolated from the details of data in the XML document.
The Microsoft DHTML data binding software utilizes the Microsoft ActiveX Data Object (ADO) programming model which is discussed in Understanding ActiveX and OLE by David Chappell, published by the Microsoft Press, Redmond, Wash., ISBN 1-572-31216-5. The ADO programming model is a recordset model. The ADO recordset contains two components, namely a collection of Fields and a collection of Properties. Each record within an ADO recordset has a collection of Fields. The Fields collection is the default collection for an ADO recordset object. Each Field has a Name, Value and Count property. The Count property indicates the number of Fields in the collection. In the ADO recordset Properties collection each property has a Name, Type and Value.
The ADO programming model permits only serial addressing of a record set, that is, only one record set at a time is accessible to the DSO. One result of using the ADO protocol is that there is no practical method of binding a group of prompt elements, i.e. one form, to more than one record set object at a time.
In the context of forms, a group of prompt elements is a tabular grouping of prompt elements that may be aligned either vertically and/or horizontally. Each prompt element prompts a user to either make a selection or enter data. In some applications, for example for manipulation of hierarchically related data, it may be desired for data for presentation in a grouping of prompt elements on a form to come from several underlying record set objects. However, the Microsoft ADO record set model does not integrate well with an object oriented hierarchical data buffer structure in which it is desired to display data from multiple record sets together. To use the Microsoft ADO record set model in such a manner, an HTML document author must write separate DSO code objects to manipulate multiple record sets in order to bind the desired data to corresponding prompt elements in the form.
When a DHTML document is sent by a server to a client machine the document may already have embedded data. The client's web browser subsequently receives and displays whatever data is already contained in the server generated document. When a DHTML form has some of its data altered by the client user, the form is returned to the server in its entirety, that is, both the data and the underlying form is retransmitted to the server. The repeated sending of redundant information regarding a largely static form creates unnecessary network traffic.
Numerous examples of data binding protocols exist. U.S. Pat. No. 6,014,677, entitled DOCUMENT MANAGEMENT DEVICE AND METHOD FOR MANAGING DOCUMENTS BY UTILIZING ADDITIVE INFORMATION, issued to Hayashi et al. discloses a binding information creating device which associates a document with subsequent evaluation data based on earlier information contained within the document. A tag template is defined by an onscreen editor, and a tag template database is created to associate coinciding tags with the same document.
U.S. Pat. No 5,940,075, entitled METHOD FOR EXTENDING THE HYPERTEXT MARKUP LANGUAGE (HTML) TO SUPPORT ENTERPRISE APPLICATION DATA BINDING, issued to Mutschler, III et al. discloses a web server program and associated database for storing description language of a form to be displayed. The server is coupled to a host having a CPU executing a legacy application containing the form. The server opens the form and associates data names with data values received from the host and sends them to the client.
U.S. Pat. No. 6,023,271, entitled FRAMEWORK FOR BINDING DATA VIEWERS/DATA MANIPULATION WITH ONE TO MANY OBJECTS THROUGH INTROSPECTION, issued to Quaeler-Bock et al., discloses a data structure that enables a client application to bind a set of GUI components to the attributes of at least one Business Object (BO).
U.S. Pat. No. 5,555,365, entitled METHOD AND SYSTEM FOR OPTIMIZING STATIC AND DYNAMIC BINDING OF PRESENTATION OBJECTS WITH THE OBJECT DATA THEY REPRESENT, issued to Selby et al. discloses the creation of a table that specifies relationships between GUI objects and the application object. Each time the application object is initialized the table is used to specify objects within the application object.
U.S. Pat. No. 5,430,836, entitled APPLICATION CONTROL MODEL FOR COMMON USER INTERFACE ACCESS, issued to Wolf et al., discloses an Application Control Module (ACM) that is executable by the applications. The ACM includes functional elements for initializing the data in the application, drawing or presenting a display screen defined by the data, running or processing user input events in accordance with the operation defined by the data, and closing the application.
U.S. Pat. No. 5,832,532, entitled MODEL INDEPENDENT AND INTERACTIVE REPORT GENERATION SYSTEM AND METHOD OF OPERATION, issued to Kennedy et al. discloses an interactive report generation system that includes a compiler, an evaluator, a renderer, and model interface functions. The compiler receives report, layout, and worksheet definitions, accesses model interface functions, and generates a report template. The evaluator receives the report template, accesses model interface functions, accesses a user model, and generates a report instance. A renderer receives the report instance in order to display and allow interaction with that report instance.
Another problem which is present when processing data from an external database is that some of the data have values which are subject to a constraint. Further, some of the data have values which are subject to a constraint which depends on the values of other data. In addition, the status of some data may be changed based on the value of other data. For example, a piece of data may become required if a second piece of data has a first value and unnecessary or irrelevant if that second piece of data has a second value. A binding mechanism is desirable which, in addition to linking data items from the external database to prompt elements in the form, will dynamically configure all of the prompt elements on the form based on the values entered into each prompt element and which will enforce the data constraints described above and ensure that the data returned to the external database remains internally consistent.